home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
A-COMAL Series
/
(k)aab.d64
/
lst.delink
< prev
next >
Wrap
Text File
|
2007-02-28
|
4KB
|
149 lines
0010 // ─┼╠┼╘┼ "LST.DELINK"
0020 // ╠╔╙╘ "LST.DELINK"
0030 //
0040 // BY ─ICK ╦LINGENS - NOV85
0050 // ─UTCH ├╧═┴╠ ╒SERS ╟ROUP
0060 //
0070 // AND ─AVID ╙TIDOLPH - JAN86
0080 // ├╧═┴╠ ╒SERS ╟ROUP, ╒╙┴
0090 //
0100 ╒╙┼ SYSTEM
0110 INFO
0120 ─╔═ FILENAME$ ╧╞ 18
0130 LIBLO:=$C7F0
0140 LIBHI:=$C7FA
0150 LIBPAG:=$C804
0160 LIBPT:=$C7EF // LIBRARY POINTER
0170 NLIB:=╨┼┼╦(LIBPT)
0180 // NUMBER OF LIBRARIES
0190 SHOW'NAMES
0200 CHOICE(NUM)
0210 LO:=╨┼┼╦(LIBLO+NUM-1)
0220 HI:=╨┼┼╦(LIBHI+NUM-1)
0230 PAG:=╨┼┼╦(LIBPAG+NUM-1)
0240 // LIBRARY IS ON PAGE PAG
0250 SETPAGE(PAG)
0260 AD'START:=LO+256*HI
0270 AD'END:=╨┼┼╦(AD'START+1)
0280 AD'END:+256*╨┼┼╦(AD'START+2)
0290 // START & END ADDRESS
0300 GET'FILENAME
0310 MEM'TO'OBJ(1,AD'START,AD'END-1)
0320 ┼╬─ " ─ONE"
0330 //
0340 ╨╥╧├ SHOW'NAMES
0350 ╨╥╔╬╘
0360 ╨╥╔╬╘ " ─┼╠╔╬╦"
0370 ╨╥╔╬╘
0380 ╨╥╔╬╘ " ╨ACKAGES IN MEMORY ARE:"
0390 ╨╥╔╬╘
0400 ╞╧╥ T:=1 ╘╧ NLIB ─╧
0410 LO:=╨┼┼╦(LIBLO+T-1)
0420 HI:=╨┼┼╦(LIBHI+T-1)
0430 START:=LO+256*HI
0440 PAG:=╨┼┼╦(LIBPAG+T-1)
0450 SETPAGE(PAG)
0460 ╨╥╔╬╘ ╒╙╔╬╟ " ##) ": T,
0470 ╨╥╔╬╘ NAME$(START)
0480 ┼╬─╞╧╥ T
0490 ┼╬─╨╥╧├ SHOW'NAMES
0500 //
0510 ╞╒╬├ NAME$(X) ├╠╧╙┼─
0520 L:=╨┼┼╦(X+5)
0530 // LENGTH OF PACKAGE NAME
0540 ─╔═ R$ ╧╞ L
0550 ╞╧╥ T:=1 ╘╧ L ─╧
0560 R$:+├╚╥$(╨┼┼╦(X+5+T))
0570 ┼╬─╞╧╥ T
0580 ╥┼╘╒╥╬ R$
0590 ┼╬─╞╒╬├ NAME$
0600 //
0610 ╨╥╧├ CHOICE(╥┼╞ NUM) ├╠╧╙┼─
0620 ╔═╨╧╥╘ NLIB,CURROW,CURCOL
0630 ╨╥╔╬╘
0640 X:=CURROW; Y:=CURCOL
0650 ╥┼╨┼┴╘
0660 ╔╬╨╒╘ ┴╘ X,Y,2: " ╘YPE NUMBER: ": NUM
0670 ╒╬╘╔╠ NUM>=0 ┴╬─ NUM<=NLIB
0680 ╔╞ NUM=0 ╘╚┼╬
0690 ┼╬─ "┼ND OF PROGRAM"
0700 ┼╬─╔╞
0710 ┼╬─╨╥╧├ CHOICE
0720 //
0730 ╨╥╧├ INFO
0740 ╨┴╟┼
0750 ╨╥╔╬╘ " ─┼╠╔╬╦"
0760 ╨╥╔╬╘
0770 ╨╥╔╬╘ " ╘HIS PROGRAM DE╠╔╬╦S A PACKAGE THAT"
0780 ╨╥╔╬╘ " IS LINKED AT ANOTHER PROGRAM."
0790 ╨╥╔╬╘
0800 ╨╥╔╬╘ " ╞IRST ╠╧┴─ THAT PROGRAM AND TYPE:"
0810 ╨╥╔╬╘ " ─┼╠-"
0820 ╨╥╔╬╘ " ═┼╥╟┼ ""LST.DELINK"""
0830 ╨╥╔╬╘ " ╥╒╬"
0840 ╨╥╔╬╘
0850 ╨╥╔╬╘ " ╘HEN THE PACKAGE IS IN A BINARY FILE."
0860 ╨╥╔╬╘ " ╔T IS A MEMORY IMAGE OF THE PACKAGE."
0870 ╨╥╔╬╘
0880 ╨╥╔╬╘ " ╒SE A PROGRAM SUCH AS"
0890 ╨╥╔╬╘ " MAKE'OBJECT'FILE"
0900 ╨╥╔╬╘ " TO CREATE A PACKAGE ╠╔╬╦ FILE."
0910
0920 ╨╥╔╬╘
0930 ╨╥╔╬╘ " *** ╘YPE ANY KEY TO CONTINUE OR ***"
0940 ╨╥╔╬╘ " *** ┼╙├ TO STOP ***"
0950 ╫╚╔╠┼ ╦┼┘$<>""0"" ─╧ ╬╒╠╠
0960 ╫╚╔╠┼ ╦┼┘$=""0"" ─╧ ╬╒╠╠
0970 ╨┴╟┼
0980 ┼╬─╨╥╧├ INFO
0990 //
1000 ╨╥╧├ MEM'TO'OBJ(F'NUM,ADD,LAST) ├╠╧╙┼─
1010 ─╔═ CODE$ ╧╞ 80, ADRS$ ╧╞ 4
1020 LINO:=0
1030 ╥┼╨┼┴╘
1040 LINO:+1; RL:=0; CODE$:=""
1050 ╫╚╔╠┼ RL<$18 ┴╬─ ADD+RL<=LAST ─╧
1060 CODE$:+HEX$(╨┼┼╦(ADD+RL)); RL:+1
1070 ┼╬─╫╚╔╠┼
1080 ADRS$:=HEX$(ADD ─╔╓ 256)
1090 ADRS$:+HEX$(ADD ═╧─ 256)
1100 CODE$:=";"+HEX$(RL)+ADRS$+CODE$
1110 CHECKSUM(CODE$)
1120 ╨╥╔╬╘ ╞╔╠┼ F'NUM: CODE$
1130 ADD:+RL
1140 ╒╬╘╔╠ ADD>LAST
1150 CODE$:=";00"+HEX$(LINO ─╔╓ 256)
1160 CODE$:+HEX$(LINO ═╧─ 256)
1170 CODE$:+CODE$(4:)
1180 ╨╥╔╬╘ ╞╔╠┼ F'NUM: CODE$
1190 ├╠╧╙┼ ╞╔╠┼ F'NUM
1200 //
1210 ╨╥╧├ CHECKSUM(╥┼╞ X$)
1220 CH:=0
1230 ╞╧╥ T:=2 ╘╧ ╠┼╬(X$) ╙╘┼╨ 2 ─╧
1240 CH:+╓┴╠("$"+X$(T:T+1))
1250 ┼╬─╞╧╥ T
1260 X$:+HEX$(CH ─╔╓ 256)
1270 X$:+HEX$(CH ═╧─ 256)
1280 ┼╬─╨╥╧├ CHECKSUM
1290 //
1300 ╞╒╬├ HEX$(X) ├╠╧╙┼─
1310 ─╔═ H$ ╧╞ 16
1320 H$:="0123456789ABCDEF"
1330 ╥┼╘╒╥╬ H$((X ─╔╓ 16)+1)+H$((X ═╧─ 16)+1)
1340 ┼╬─╞╒╬├ HEX$
1350 ┼╬─╨╥╧├ MEM'TO'OBJ
1360 //
1370 ╨╥╧├ GET'FILENAME
1380 ╨╥╔╬╘
1390 ╔╬╨╒╘ ┴╘ 0,0,18: "┼NTER FILENAME: ": FILENAME$
1400 ╘╥┴╨
1410 ╧╨┼╬ ╞╔╠┼ 1,FILENAME$,╫╥╔╘┼
1420 ╚┴╬─╠┼╥
1430 ├╠╧╙┼
1440 ╨╥╔╬╘
1450 ╨╥╔╬╘ "─ISK ERROR --";┼╥╥╘┼╪╘$
1460 ┼╬─
1470 ┼╬─╘╥┴╨
1480 ┼╬─╨╥╧├ GET'FILENAME